PHP Eclipse / DBG
Warnung
Alles hier beschrieben funktioniert im Prinzip - aber in der Praxis... Hält an einem Breakpoint: meistens, manchmal... Beim Aufruf einer Funktion in einer anderen Datei hängt er... usw.
Debugger unter OSX einrichten
Compilieren
Erstmal für PHP5
# Download dbg-2.15.5 module sources
cd /usr/local/src/
wget dd.cron.ru/dbg/download.php
tar xzf dbg-2.15.5.tar.gz
cd dbg-2.15.5
Editieren von deferphpize:
phpize=${phpize:-"/usr/local/bin/phpize"}
=> (PHP5) phpize=${phpize:-"/usr/local/php5/bin/phpize"}
Linux|SunOS) => Linux|SunOS|Darwin)
Linux) => Linux|Darwin)
Aufrufen von ./deferphpize: Nun wird mit dem richtigen PHP compiliert (usr/local/php5/bin/)
=> dbg.so wird in modules angelegt
Das Script gibt u.a. folgende Informationen aus:
Zend Module Api No: 20060613
checking for PHP extension directory... /usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613
Konfigurieren
Nachsehen in /usr/local/php5/php.d/10-extension_dir.ini nach dem Extension Dir ergibt:
/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613
dbg.so dorthinkopieren und umbenennen in dbg-2.15.5.so (optional)
Php.ini
Folgendes eintragen:
[debugger]
extension=dbg-2.15.5.so
debugger.enabled=on
debugger.profiler_enabled=on
debugger.hosts_allow=127.0.0.1
debugger.hosts_deny=ALL
debugger.ports=7869, 10000/16
(Php4)
Editieren von deferphpize:
=> (PHP4) phpize=${phpize:-"/usr/bin/phpize"}
Editieren von /etc/php.ini
=> extension_dir = "/usr/lib/php/extensions/no-debug-non-zts-20020429"
Ich habe dies nicht weiter durchgeführt, bin bei php5 geblieben
Debugging von Extensions
Aktualisieren von Phpeclipse
erstens: Ich habe die "update location" für Phpeclipse geändert (Help-> Software Versions-> Find and Install-> Search for new features->Edit):
Von: phpeclipse.sourceforge.net/update/releases
Zu: update.phpeclipse.net/update/nightly
Ich habe die Version aktualiiert auf 1.2.0.200707080504NGT
Symbolische Links!!!
Ich habe herausgefunden dass der Debugger ein Problem hat mit symbolischen Links - also habe ich das geändert in meiner Entwicklungsumgebung.
Mindestens sollte man die index.php ersetzen um Extensions zu debuggen.
mv index.php index.php.parked
mv typo3_src typo3_src.parked
mv t3lib t3lib.parked
mv typo3 typo3.parked
cp /<your typo source directory>/typo3_src.4.1.1 ./typo3_src
mv typo3_src/index.php ./index.php
mv typo3_src/typo3 ./typo3
mv typo3_src/t3lib ./t3lib
Nicht vergessen
Cache
Nicht vergessen mit der Option &no_cache=1 aufzurufen.
Dbg
Nicht vergessen mit der Option &DBGSESSID=1@localhost:10001 aufzurufen (Wird in Cookie gespeichert nachdem ersten Aufruf).
Eine Seite pro Debug
Nun denn: Man muss die Debug Session nach jedem Seitenaufruf erneut starten. Aber besser als gar kein Debugging.